# 图形的滤波
import cv2

image = cv2.imread("plane.jpg")
# 使用高斯滤波器
gauss = cv2.GaussianBlur(image, (5, 5), 0)
# 使用均值滤波器
median = cv2.medianBlur(image, 5)

cv2.imshow("image", image)
cv2.imshow("gauss", gauss)
cv2.imshow("median", median)

cv2.waitKey()

'''
高斯滤波（Gaussian Blur）和均值滤波（Mean Blur）都是图像处理中常用的平滑技术，它们用于减少图像噪声、模糊图像边缘或细节，以及进行图像预处理。
选择使用哪种滤波方法取决于具体的应用场景和需求。

均值滤波：
简单易实现，对所有像素的邻域内的像素值求平均。
对于去除随机噪声（如椒盐噪声）效果较好。
对图像的边缘和细节的模糊程度较高，可能导致图像质量下降。

高斯滤波：
使用高斯分布作为权重，对邻域内的像素进行加权平均。
对图像的边缘和细节的模糊程度较低，通常能更好地保留图像的结构信息。
实现相对复杂，需要计算高斯核的权重。

在实际应用中，高斯滤波通常更受欢迎，因为它在平滑图像的同时能更好地保留图像的边缘和细节。
然而，如果处理速度是一个关键因素，均值滤波由于其简单性可能会更快。此外，对于某些特定的噪声类型，均值滤波可能更有效。

在决定使用哪种滤波方法时，可以考虑以下因素：
图像内容：如果图像中包含重要的边缘信息，高斯滤波可能更合适。
噪声类型：如果主要是随机噪声，均值滤波可能更有效。
实现复杂度：如果需要快速实现，均值滤波可能更简单。
性能要求：如果对图像质量有较高要求，高斯滤波通常能提供更好的结果。

在某些情况下，也可以结合使用这两种滤波方法，或者尝试其他类型的滤波器，如双边滤波（Bilateral Filter），它在平滑图像的同时能更好地保留边缘。
'''

